package collection;

import space.position.Point;

import java.util.Queue;

/**
 * Queue接口
 * 继承Collection接口
 *
 * 特有的抽象方法
 * boolean offer(E e)   插入指定的元素到队列，并返回true或者false，
 *                      如果队列数量超过了容量，不会抛出异常，只会返回false。
 *
 * E remove()           搜索并删除最顶层的队列元素，如果队列为空，则抛出一个Exception。
 *
 * E poll()             搜索并删除最顶层的队列元素，如果队列为空，则返回null。
 *
 * E element()          检索但不删除并返回队列中最顶层的元素，如果该队列为空，则抛出一个Exception。
 *
 * E peek()             检索但不删除并返回最顶层的元素，如果该队列为空，则返回null
 * */
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Point> queue = Get.getPointLinkedList(10, 20, 20);
        System.out.println(queue);
        queue.remove();
        queue.remove();
        System.out.println("移除两个最顶层的元素之后： \n" + queue);
        Point point = queue.element();      // 队列为空时抛出异常
        System.out.println(point);
        Point point1 = queue.peek();
        System.out.println(point1);         // 队列为空时返回null
        System.out.println(queue);
    }
}
